(function($) {

	/**
	 * 用于构造Boolean值的Checkbox
	 *
	 * @param {string} target 目标input的选择器，必须与源input在同一个form节点下
	 */
	$.fn.boolCheckbox = function(target) {
		if (!target) {
			// Empty target, do nothing.
			return this;
		}
		var input = this;
		input.change(function() {
			var hidden = $(target, input.parent());
			if (this.checked) {
				hidden.val(true);
			} else {
				hidden.val(false);
			}
		});

		// 因为Reset不会重置hidden输入，所以手动进行处理，通过事件代理的方式
		var form = input.closest('form');
		form.delegate('button[type="reset"], input[type="reset"]', "click", function() {
			input.change();
		});
	};

}(jQuery));